"""
!/usr/bin/env python
-*- coding: utf-8 -*-
@Author  : MarkJia
@Site    :
@File    : 19、内置库：OS.py
"""

"""
系统相关
操作相关
操作路径
"""
# dirname是 ：获取文件名上级目录的绝对路径
# basename是：获取文件名的路径

import os

help(os)  # 查看模块说明书
print(dir(os))  # 查看模块的属性和方法

# 一：操作系统相关
# 获取系统名称  : nt 代表 windows，posix 代表linux
print(os.name)  # 结果是：nt

# 获取系统环境变量
print(
    os.environ)  # environ({'ALLUSERSPROFILE': 'C:\\ProgramData', 'ANDROID_HOME': 'D:\\Android_sdk', 'APPDATA': 'C:\\Users\\jiapengbo\\AppData\\Roaming',

# =============   最常用  =====================  获取环境信息（用于多环境）
# 获取指定名称下的环境变量信息
print(os.getenv('PATH'))

# ==========  teminal 终端 ==========  用于终端执行命令
# 执行系统指令  -> 打开 cmd
os.system('cmd')

# 二： 目录操作
# 获取当前目录
print(os.getcwd())  # C:\software\Project_Workspace\Auto\python_base

# 切换目录
os.chdir('..')
print(os.getcwd())  # C:\software\Project_Workspace\Auto

# 列出当前目录的所有文件或者目录
os.chdir('..')
print(
    os.listdir())  # ['.idea', 'a', 'apitest', 'Autoapi_frame', 'Autowebui_frame', 'frame测试框架', 'main.py', 'python_base', 'webtest']

# 创建空目录
os.mkdir('new')

# 递归创建目录
os.makedirs('a/b')

# 重命名目录  将创建的空目录new重命名为hello
os.rename('new', 'hello')

# 删除一个空目录
os.rmdir('hello')

# 删除一个空文件
os.remove('demo.txt')

# 三：路径path操作

# 获取文件的绝对路径 ： os.path.abspath(path)
# 结果为：C:\software\Project_Workspace\Auto\python_base\19、内置库：OS.py
print(os.path.abspath(__file__))

# 获取文件名的路径：basename
# 结果为：19、内置库：OS.py
print(os.path.basename(__file__))

# 获取文件名上级目录的绝对路径dirname
dirname = os.path.dirname(__file__)
# 结果为：C:\software\Project_Workspace\Auto\python_base
print(dirname)

# 分割路径 分为  dirname 目录 和 basename文件名

# 结果为：('C:\software\Project_Workspace\Auto\python_base', '19、内置库：OS.py')
print(os.path.split('C:\software\Project_Workspace\Auto\python_base\19、内置库：OS.py'))

# 返回一个元组
path1 = os.path.split('C:\software\Project_Workspace\Auto\python_base\19、内置库：OS.py')
print(f'dirname路径为: {path1[0]}')  # dirname路径为: C:\software\Project_Workspace\Auto\python_base
print(f'basename文件名为: {path1[1]}')  # basename文件名为: 19、内置库：OS.py

# # 拼接两个路径  路径 + 文件名    os.path.join(path)
# 结果为：C:/software/Project_Workspace/Auto/python_base\12、面向对象编程.py
print(os.path.join(dirname, '12、面向对象编程.py'))

# 判断传入的路径是否存在  os.path.exists(path)
# 存在返回True。不存在返回False   结果是True
print(os.path.exists('C:\software\Project_Workspace\Auto\python_base\19、内置库：OS.py'))
# 使用相对路径，结果为 True
print(os.path.exists('./19、内置库：OS.py'))

# 判断传入的路径是否为一个目录    os.path.isdir(path)
# 是目录为True
print(os.path.isdir(dirname))

# 判断传入的路径是否是一个文件    os.path.isfile(path)
# 是文件为True
print(os.path.isfile(os.path.join(dirname, '19、内置库：OS.py')))

# 获取文件大小  2639KB
print(os.path.getsize('./19、内置库：OS.py'))
